package com.kifas.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "tb_piutang")
public class PiutangEntity implements Serializable {

	private static final long serialVersionUID = 5041470669611052808L;

	@Id
	@GeneratedValue
	@Column(name = "id_piutang")
	private Long idPiutang;

	@ManyToOne
	@JoinColumn(name = "id_customer", nullable = false)
	private CustomerEntity customer;

	@Temporal(TemporalType.DATE)
	private Date tanggal;

	@Column(name = "tanggalJthTempo")
	@Temporal(TemporalType.DATE)
	private Date tanggalJatuhTempo;

	@Column(name = "syarat_bayar")
	private String syaratBayar;

	private String noFaktur;

	private BigDecimal jumlah;

	private String keterangan;

	private String noReferensi;
	
	@Column(name= "created_by")
	private String createdBy;
	
	@Column(name= "created_date")
	@Temporal(TemporalType.TIMESTAMP)
	private Date createdDate;

	@OneToMany(mappedBy = "piutang", targetEntity = BukuPiutangEntity.class, fetch = FetchType.LAZY)
	private Set<BukuPiutangEntity> bukuPiutangs;

	public PiutangEntity() {
	}

	public PiutangEntity(Long idPiutang, CustomerEntity customer, Date tanggal,
			Date tanggalJatuhTempo, String syaratBayar, String noFaktur,
			BigDecimal jumlah, String keterangan, String noReferensi, Set<BukuPiutangEntity> bukuPiutangs, String createdBy, Date createdDate) {
		this.idPiutang = idPiutang;
		this.customer = customer;
		this.tanggal = tanggal;
		this.tanggalJatuhTempo = tanggalJatuhTempo;
		this.syaratBayar = syaratBayar;
		this.noFaktur = noFaktur;
		this.jumlah = jumlah;
		this.keterangan = keterangan;
		this.noReferensi = noReferensi;
		this.bukuPiutangs = bukuPiutangs;
		this.createdBy = createdBy;
		this.createdDate = createdDate;
	}

	public Long getIdPiutang() {
		return idPiutang;
	}

	public void setIdPiutang(Long idPiutang) {
		this.idPiutang = idPiutang;
	}

	public CustomerEntity getCustomer() {
		return customer;
	}

	public void setCustomer(CustomerEntity customer) {
		this.customer = customer;
	}

	public Date getTanggal() {
		return tanggal;
	}

	public void setTanggal(Date tanggal) {
		this.tanggal = tanggal;
	}

	public Date getTanggalJatuhTempo() {
		return tanggalJatuhTempo;
	}

	public void setTanggalJatuhTempo(Date tanggalJatuhTempo) {
		this.tanggalJatuhTempo = tanggalJatuhTempo;
	}

	public String getSyaratBayar() {
		return syaratBayar;
	}

	public void setSyaratBayar(String syaratBayar) {
		this.syaratBayar = syaratBayar;
	}

	public String getNoFaktur() {
		return noFaktur;
	}

	public void setNoFaktur(String noFaktur) {
		this.noFaktur = noFaktur;
	}

	public BigDecimal getJumlah() {
		return jumlah;
	}

	public void setJumlah(BigDecimal jumlah) {
		this.jumlah = jumlah;
	}

	public String getKeterangan() {
		return keterangan;
	}

	public void setKeterangan(String keterangan) {
		this.keterangan = keterangan;
	}

	public String getNoReferensi() {
		return noReferensi;
	}

	public void setNoReferensi(String noReferensi) {
		this.noReferensi = noReferensi;
	}

	public Set<BukuPiutangEntity> getBukuPiutangs() {
		return bukuPiutangs;
	}

	public void setBukuPiutangs(Set<BukuPiutangEntity> bukuPiutangs) {
		this.bukuPiutangs = bukuPiutangs;
	}

	public void setCreatedBy(String createdBy) {
		this.createdBy = createdBy;
	}

	public String getCreatedBy() {
		return createdBy;
	}

	public void setCreatedDate(Date createdDate) {
		this.createdDate = createdDate;
	}

	public Date getCreatedDate() {
		return createdDate;
	}

}
